package ar.utn.frgp.banco.dao.impl;

import genericos.dao.exeptions.PersistanceException;

import java.util.ArrayList;
import java.util.List;

import org.hibernate.HibernateException;
import org.hibernate.criterion.Restrictions;

import ar.utn.frgp.banco.dao.CuentasDAO;
import ar.utn.frgp.banco.dao.EBAbstractDAO;
import ar.utn.frgp.banco.dao.PlazoFijoDao;
import ar.utn.frgp.banco.entity.PlazoFijo;
import ar.utn.frgp.banco.exceptions.DataAccessException;
import ar.utn.frgp.banco.exceptions.PersonalisedException;

public class PlazoFijoDaoImpl extends EBAbstractDAO implements PlazoFijoDao{

	private CuentasDAO cuentaDAO;
	
	public void crearPlazoFijo(PlazoFijo pfijo)
			throws DataAccessException, PersonalisedException {
		
		universalHibernateDAO.save(pfijo);
	}

	public PlazoFijo consultarPlazoFijo(long id) throws DataAccessException,
			PersonalisedException {
		// TODO Auto-generated method stub
		return null;
	}

	public List<PlazoFijo> consultarHistoricoPlazoFijo(String dni)
			throws DataAccessException, PersonalisedException {
		List<PlazoFijo> plazosFijos = new ArrayList<PlazoFijo>();
		try {
			plazosFijos = universalHibernateDAO.getHibernateSession().createCriteria(PlazoFijo.class).add(Restrictions.eq("dni", dni)).list();
		} catch (HibernateException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (PersistanceException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return plazosFijos;
	}

	public boolean actualizarPlazoFijo(PlazoFijo pfijo)
			throws DataAccessException, PersonalisedException {
		// TODO Auto-generated method stub
		return false;
	}

	public List<PlazoFijo> plazosFijosPorCliente(String dni)
			throws DataAccessException {
		// TODO Auto-generated method stub
		return null;
	}

	public CuentasDAO getCuentaDAO() {
		return cuentaDAO;
	}

	public void setCuentaDAO(CuentasDAO cuentaDAO) {
		this.cuentaDAO = cuentaDAO;
	}
	
}
